extends Card

@export var optional_sound: AudioStream
@export var damage_multiplier: float = 2.0

func get_default_tooltip() -> String:
	# 使用%操作符替换tooltip_text中的占位符
	return tooltip_text % damage_multiplier

func get_updated_tooltip(_player_modifiers: ModifierHandler, _enemy_modifiers: ModifierHandler) -> String:
	# 动态更新提示文本，显示当前的贷款能量和最终伤害值（包含力量增益和效果翻倍）
	var example_loan_mana = 3  # 示例贷款能量
	var base_damage = example_loan_mana  # 基础伤害等于贷款能量
	var final_damage = base_damage
	
	# 通过player_modifiers获取最终伤害值（包含力量增益和效果翻倍）
	if _player_modifiers:
		# 首先应用DMG_DEALT修改器（力量增益）
		var damage_with_power = _player_modifiers.get_modified_value(base_damage, Modifier.Type.DMG_DEALT)
		
		# 然后应用CARD_EFFECT_MULTIPLIER修改器（效果翻倍）
		var multiplier_modifier = _player_modifiers.get_modifier(Modifier.Type.CARD_EFFECT_MULTIPLIER)
		if multiplier_modifier:
			var multiplier = multiplier_modifier.get_modified_value(1)
			final_damage = int(damage_with_power * multiplier)
			print("🔥 燃血焚域动态tooltip: 贷款能量 %d，基础伤害 %d，力量增益后 %d，效果翻倍后 %d" % [example_loan_mana, base_damage, damage_with_power, final_damage])
		else:
			final_damage = damage_with_power
			print("🔥 燃血焚域动态tooltip: 贷款能量 %d，基础伤害 %d → 最终伤害 %d（无翻倍效果）" % [example_loan_mana, base_damage, final_damage])
	
	# 使用%操作符替换占位符
	return tooltip_text % final_damage

func apply_effects(targets: Array[Node], _modifiers: ModifierHandler) -> void:
	print("焚血诀卡牌被使用！")
	
	var player = null
	var new_loan_mana = 0
	
	# 通过targets参数获取场景树
	if targets.size() > 0:
		var tree = targets[0].get_tree()
		player = Card.find_player(tree)
		
		if player and player.stats:
			new_loan_mana = player.stats.new_loan_mana
			print("当前回合新增贷款能量: %d" % new_loan_mana)
	
	var final_damage = int(new_loan_mana * damage_multiplier)
	print("血燃术总伤害: %d (新增贷款能量: %d x 倍数: %.1f)" % [
		final_damage, new_loan_mana, damage_multiplier
	])
	
	if final_damage <= 0:
		final_damage = 1
		print("无新增贷款能量，造成基础伤害: %d" % final_damage)
	
	for target in targets:
		if target is Enemy:
			print("血燃术效果触发，目标: %s，伤害: %d" % [target.name, final_damage])
			
			# 创建DamageEffect并应用DMG_DEALT修改器（包括力量增益）
			var damage_effect := DamageEffect.new()
			damage_effect.amount = _modifiers.get_modified_value(final_damage, Modifier.Type.DMG_DEALT)
			damage_effect.sound = sound
			damage_effect.execute([target])
			
			if sound:
				SFXPlayer.play(sound)
			elif optional_sound:
				SFXPlayer.play(optional_sound)
		else:
			print("目标不是Enemy类型: %s" % target.get_class())
